package routers

import (
	"gameserver/gcommon"
	"gameserver/server/Login/internal"
	"net/http"
	"strings"
	"time"

	"github.com/gin-gonic/gin"
)

/*
gin服务的group组处理函数
*/
func loginAfter_Handler(c *gin.Context) {
	//这里处理hand里的信息
	//验证是否登录过
	// 如果不是成年人，条件不对的时候，就不让上了。
	tokenString := c.GetHeader("Authorization") //获取请求头中的token
	if ok := strings.HasPrefix(tokenString, "Bearer "); ok {
		tokenString = tokenString[7:]
	}
	jwtmd, err := internal.CheckJWTToken(tokenString)
	if err != nil {
		c.JSON(http.StatusOK, gin.H{"Result": gcommon.RETMSG_Tips_Param_Fail})
		c.Abort()
		return
	}
	if !jwtmd.Isadult {
		//不是成年
		n := time.Now()
		if n.Hour() != 20 {
			c.JSON(http.StatusOK, gin.H{"Result": gcommon.RETMSG_User_Not_Adult})
			c.Abort()
			return
		}
		// 节假日的判断
		// if !holiday.GetTypeMgr().DateIsHoliday(n) {
		// 	c.JSON(http.StatusOK, gin.H{"Result": gcommon.RETMSG_User_Not_Adult})
		// 	c.Abort()
		// 	return
		// }
	}
	c.Set(internal.Gin_Get_LoginModel, jwtmd)
	c.Set(internal.Gin_Get_UserID, jwtmd.UserID)
	c.Next()
}

// 其他服务器请求验证
func innerAlfter_Handler(c *gin.Context) {
	token := c.GetHeader("Token")
	if token == internal.GetSrvinst().GetSInfo().LoginToken {
		c.Next()
		return
	} else {
		c.JSON(http.StatusOK, gin.H{"Result": gcommon.Err_Tips_Param_Fail})
		c.Abort()
		return
	}
}
